home *** CD-ROM | disk | FTP | other *** search
- Path: hoho.quake.net!usenet
- From: gomberg@wcf.com
- Newsgroups: comp.lang.misc,comp.lang.c,comp.lang.pl1
- Subject: Re: GOTO controversy
- Date: 9 Mar 1996 16:48:00 GMT
- Organization: QuakeNet Internet Services (email info@Quake.Net)
- Message-ID: <4hsco0$rj5@hoho.quake.net>
- References: <rcshlds.1.000A6705@mailserv.mta.ca> <Dn8pJ8.nqs@emi.net> <4grt4e$8fg@goanna.cs.rmit.EDU.AU> <4hl8mt$4po@newshost.cyberramp.net> <DnwCxp.84C@clw.cs.man.ac.uk>
- Reply-To: gomberg@wcf.com
- NNTP-Posting-Host: l87.ip.quake.net
- X-Newsreader: IBM NewsReader/2 v1.09
-
- This is goto-free and I think equally clear:>>>------------------------------------------------------------------------------
- HEV hev1, hev2, hev3; /* Event semaphores */
- HMTX hmtx; /* Mutex semaphore */
- void *ptr;
- if DosCreateEventSem(0, &hev1, 0, FALSE) then do;
- if DosCreateEventSem(0, &hev2, 0, FALSE) then do;
- if DosCreateEventSem(0, &hev3, 0, FALSE) then do;
- if DosCreateMutexSem(0, &hmtx, 0, FALSE) then do;
- ptr = malloc(SOME_SIZE)
- if ptr<>NULL then do;
- /* Do some stuff here */
- return TRUE; /* We did okay */ end;
- DosCloseMutexSem(hmtx); end;
- DosCloseEventSem(hev3); end;
- DosCloseEventSem(hev2); end;
- DosCloseEventSem(hev1); end;
- return FALSE;
-
-
- And I would assert my code is (1) a lot more PL/1-like and
- (2) a lot easier to understand.
-